﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

// Reviewed
#pragma once
#include "GcmpGuiMainFrameInterface.h"

#include <string>

namespace gcmp
{
    class IRibbonSystemPopupBar;

/// \brief SystemButton接口
class GCMP_GUI_MAIN_FRAME_INTERFACE_EXPORT IRibbonSystemButton
{   
public:
    /// \brief 析构函数
    virtual ~IRibbonSystemButton();

    /// \brief 设置文字
    ///
    /// \param text 显示的文字
    /// \return true表示成功，false表示失败
    virtual bool SetText(const std::wstring& text) = 0;

    /// \brief 设置图标
    ///
    /// \param icon 显示的图标路径
    /// \return true表示成功，false表示失败
    virtual bool SetIcon(const std::wstring& icon) = 0;

    /// \brief 设置提示文字
    ///
    /// \param toolTip 显示的提示的文字
    /// \return true表示成功，false表示失败
    virtual bool SetTooltip(const std::wstring& tooltip) = 0;

    /// \brief 获取SystemButton弹出栏接口
    ///
    /// \return SystemButton弹出栏指针
    /// \see IRibbonSystemPopupBar
    virtual IRibbonSystemPopupBar* GetRibbonSystemPopupBar() = 0;
};

}   // end namespace gcmp
